//===============================================================================
// Microsoft patterns & practices Enterprise Library Contribution
// Mapping Application Block
//===============================================================================

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder;

namespace EntLibContrib.Mapping
{
	/// <summary>
	/// This interface defines the contract that must be implemented by all map classes. 
	/// </summary>
	[CustomFactory(typeof(MapCustomFactory))]
	public interface IMap
	{
		#region Properties
		/// <summary>
		/// Gets the map name.
		/// </summary>
		/// <value>The name.</value>
		string Name
		{
			get;
		}

		/// <summary>
		/// Gets or sets the column name of a table in a dataset.
		/// </summary>
		/// <value>The column name.</value>
		/// <remarks>This is the name given to a table column within a DataSet,
		/// where the DataSet type is acting as a Data Transfer Object.
		/// If this column name is blank then the map name is used instead.</remarks>
		string ColumnName
		{
			get;
			set;
		}
		#endregion
	}
}
